package com.example.lotterysystem.service.mq;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.amqp.rabbit.annotation.RabbitHandler;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.util.Map;

import static com.example.lotterysystem.common.config.DirectRabbitConfig.*;


/**
 * @auther falls_vc
 * description:
 * @date 2025/9/21  16:03
 */
@Component
@RabbitListener(queues = DLX_QUEUE_NAME)
public class DlxReceiver {
    private static final Logger logger = LoggerFactory.getLogger(DlxReceiver.class);

    @Autowired
    private RabbitTemplate rabbitTemplate;

    @RabbitHandler
    public void process(Map<String,String> message) {
        // 死信队列处理信息
        logger.info("开始处理异常信息！");
        // 发消息: 交换机，绑定key ， 消息体
        // 这里只实现了消息重发
        rabbitTemplate.convertAndSend(EXCHANGE_NAME, ROUTING, message);

        // 1.把异常信息存放在数据表中
        // 2.存放后，死信队列信息处理完成
        // 3.解决异常
        // 4.判断异常信息表是否存在数据，如果存在信息为完成，处理信息
        // 5.处理信息：将信息发送给普通队列进行处理



    }
}
